#ifndef TACHYON_ZK_PLONK_EXAMPLES_MULTI_LOOKUP_CIRCUIT_TEST_DATA_H_
#define TACHYON_ZK_PLONK_EXAMPLES_MULTI_LOOKUP_CIRCUIT_TEST_DATA_H_

#include <stdint.h>

#include <string_view>
#include <utility>
#include <vector>

#include "tachyon/zk/plonk/examples/circuit_test_data.h"
#include "tachyon/zk/plonk/examples/circuit_test_type_traits.h"

namespace tachyon::zk::plonk {

template <typename Circuit, typename PS, typename SFINAE = void>
class MultiLookupTestData : public CircuitTestData<Circuit, PS> {};

// PCS = SHPlonk
template <typename Circuit, typename PS>
class MultiLookupTestData<Circuit, PS,
                          std::enable_if_t<IsSHPlonk<typename PS::PCS>>>
    : public CircuitTestData<Circuit, PS> {
 public:
  using PCS = typename PS::PCS;
  using F = typename PCS::Field;
  using Evals = typename PCS::Evals;

  // Set flags of values to be used as true
  constexpr static bool kAdviceCommitmentsFlag = true;
  constexpr static bool kLookupMPolyCommitmentsFlag = true;
  constexpr static bool kPermutationProductCommitmentsFlag = true;
  constexpr static bool kLookupSumCommitmentsFlag = true;
  constexpr static bool kAdviceEvalsFlag = true;
  constexpr static bool kFixedEvalsFlag = true;
  constexpr static bool kCommonPermutationEvalsFlag = true;
  constexpr static bool kPermutationProductEvalsFlag = true;
  constexpr static bool kPermutationProductNextEvalsFlag = true;
  constexpr static bool kLookupSumEvalsFlag = true;
  constexpr static bool kLookupSumNextEvalsFlag = true;
  constexpr static bool kPermutationProductLastEvalsFlag = true;
  constexpr static bool kLookupMEvalsFlag = true;

  constexpr static size_t kN = 32;

  constexpr static std::string_view kPinnedConstraintSystem = "";

  constexpr static bool kSelectors[][kN] = {{}};

  constexpr static std::string_view kPinnedVerifyingKey = "";

  constexpr static std::string_view kTranscriptRepr = "";

  constexpr static std::string_view kLFirst[] = {};

  constexpr static uint8_t kProof[] = {
      176, 39,  119, 154, 232, 230, 108, 49,  145, 63,  70,  98,  95,  39,  79,
      60,  158, 217, 82,  29,  203, 144, 111, 78,  192, 88,  4,   136, 239, 87,
      182, 33,  111, 96,  195, 90,  244, 247, 129, 190, 245, 7,   134, 122, 7,
      38,  111, 134, 98,  219, 109, 209, 22,  189, 233, 94,  254, 37,  168, 159,
      176, 235, 222, 156, 235, 153, 242, 158, 111, 46,  218, 237, 137, 157, 79,
      236, 121, 54,  239, 149, 20,  6,   230, 238, 214, 254, 55,  128, 121, 203,
      148, 43,  205, 237, 34,  148, 104, 119, 235, 159, 27,  152, 52,  194, 129,
      28,  241, 142, 82,  119, 54,  218, 65,  98,  24,  12,  186, 15,  178, 46,
      117, 129, 0,   141, 246, 154, 214, 166, 53,  198, 144, 126, 19,  184, 239,
      70,  130, 205, 109, 242, 43,  222, 115, 252, 25,  135, 221, 140, 138, 27,
      149, 217, 0,   210, 118, 86,  211, 115, 60,  19,  176, 39,  119, 154, 232,
      230, 108, 49,  145, 63,  70,  98,  95,  39,  79,  60,  158, 217, 82,  29,
      203, 144, 111, 78,  192, 88,  4,   136, 239, 87,  182, 33,  111, 96,  195,
      90,  244, 247, 129, 190, 245, 7,   134, 122, 7,   38,  111, 134, 98,  219,
      109, 209, 22,  189, 233, 94,  254, 37,  168, 159, 176, 235, 222, 156, 235,
      153, 242, 158, 111, 46,  218, 237, 137, 157, 79,  236, 121, 54,  239, 149,
      20,  6,   230, 238, 214, 254, 55,  128, 121, 203, 148, 43,  205, 237, 34,
      148, 104, 119, 235, 159, 27,  152, 52,  194, 129, 28,  241, 142, 82,  119,
      54,  218, 65,  98,  24,  12,  186, 15,  178, 46,  117, 129, 0,   141, 246,
      154, 214, 166, 53,  198, 144, 126, 19,  184, 239, 70,  130, 205, 109, 242,
      43,  222, 115, 252, 25,  135, 221, 140, 138, 27,  149, 217, 0,   210, 118,
      86,  211, 115, 60,  19,  10,  99,  22,  17,  150, 115, 127, 174, 68,  191,
      125, 172, 243, 223, 29,  19,  65,  199, 56,  90,  36,  185, 145, 245, 49,
      246, 227, 67,  84,  220, 74,  139, 156, 42,  177, 61,  71,  15,  22,  47,
      239, 184, 119, 62,  93,  114, 196, 215, 241, 206, 252, 57,  228, 10,  218,
      80,  89,  7,   22,  56,  81,  45,  251, 149, 10,  99,  22,  17,  150, 115,
      127, 174, 68,  191, 125, 172, 243, 223, 29,  19,  65,  199, 56,  90,  36,
      185, 145, 245, 49,  246, 227, 67,  84,  220, 74,  139, 156, 42,  177, 61,
      71,  15,  22,  47,  239, 184, 119, 62,  93,  114, 196, 215, 241, 206, 252,
      57,  228, 10,  218, 80,  89,  7,   22,  56,  81,  45,  251, 149, 28,  3,
      65,  135, 110, 91,  15,  35,  158, 68,  85,  246, 95,  194, 5,   141, 196,
      140, 25,  179, 248, 121, 239, 211, 144, 144, 44,  26,  67,  129, 244, 149,
      30,  251, 146, 72,  211, 253, 167, 86,  140, 141, 154, 48,  105, 237, 92,
      122, 34,  156, 8,   27,  211, 92,  16,  45,  250, 207, 19,  210, 128, 168,
      98,  2,   241, 174, 125, 226, 188, 249, 214, 158, 121, 18,  43,  250, 242,
      105, 199, 97,  107, 121, 77,  6,   65,  229, 222, 17,  160, 104, 80,  128,
      230, 180, 216, 146, 95,  241, 47,  41,  128, 154, 204, 17,  131, 53,  251,
      100, 244, 193, 22,  7,   77,  38,  44,  83,  35,  42,  192, 245, 37,  227,
      171, 161, 29,  45,  233, 132, 225, 30,  210, 2,   42,  240, 142, 220, 192,
      166, 146, 141, 31,  232, 14,  10,  132, 230, 192, 152, 232, 77,  180, 85,
      171, 229, 149, 32,  144, 16,  39,  170, 94,  30,  114, 27,  232, 16,  47,
      29,  229, 140, 11,  182, 148, 226, 209, 180, 83,  165, 203, 9,   10,  226,
      28,  96,  223, 57,  11,  106, 44,  33,  192, 31,  45,  91,  123, 216, 141,
      234, 53,  191, 131, 128, 151, 193, 50,  234, 182, 178, 40,  69,  229, 234,
      95,  72,  158, 32,  195, 169, 120, 91,  140, 239, 130, 142, 99,  121, 80,
      26,  191, 199, 181, 2,   227, 198, 149, 0,   63,  72,  195, 146, 44,  6,
      26,  10,  66,  102, 245, 217, 239, 78,  145, 112, 176, 224, 104, 174, 1,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   166, 134, 204, 95,  10,  123, 51,  110, 74,  33,  8,   169, 117, 6,
      101, 208, 63,  186, 18,  250, 121, 181, 73,  242, 110, 20,  59,  196, 62,
      232, 35,  32,  9,   71,  7,   127, 151, 17,  118, 7,   241, 216, 98,  226,
      245, 228, 194, 151, 103, 250, 192, 89,  59,  68,  199, 59,  146, 227, 75,
      38,  196, 122, 86,  156, 251, 202, 126, 62,  148, 62,  181, 105, 14,  140,
      77,  43,  175, 101, 99,  61,  152, 206, 195, 123, 241, 182, 72,  219, 223,
      52,  173, 99,  4,   84,  62,  157, 177, 187, 219, 240, 189, 151, 52,  139,
      61,  150, 103, 11,  51,  223, 135, 237, 200, 138, 36,  133, 71,  142, 123,
      9,   210, 139, 139, 128, 56,  87,  242, 43,  94,  61,  168, 41,  111, 57,
      158, 106, 80,  188, 54,  152, 105, 116, 193, 200, 172, 143, 60,  155, 57,
      177, 206, 30,  15,  103, 2,   3,   155, 102, 75,  47,  154, 51,  79,  6,
      180, 205, 195, 242, 21,  199, 166, 12,  128, 159, 90,  85,  163, 128, 114,
      36,  170, 162, 213, 226, 192, 202, 149, 153, 124, 79,  58,  19,  76,  241,
      124, 244, 255, 99,  177, 35,  190, 240, 190, 223, 143, 180, 137, 153, 127,
      193, 174, 219, 184, 87,  176, 134, 177, 21,  149, 199, 44,  173, 237, 161,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   134, 89,  86,  17,  79,  228, 58,  209, 169, 130, 131, 180, 240,
      157, 122, 16,  149, 111, 250, 176, 93,  106, 5,   253, 166, 69,  62,  180,
      152, 14,  37,  12,  80,  123, 32,  115, 68,  249, 237, 3,   104, 42,  80,
      254, 129, 185, 248, 49,  37,  101, 219, 220, 118, 167, 239, 218, 25,  50,
      215, 182, 8,   124, 135, 5,   194, 103, 245, 63,  97,  41,  223, 91,  204,
      238, 4,   52,  206, 81,  244, 76,  153, 98,  203, 133, 37,  92,  86,  39,
      48,  249, 238, 53,  31,  57,  188, 28,  248, 194, 244, 100, 18,  136, 104,
      158, 4,   136, 222, 60,  110, 231, 179, 82,  255, 149, 131, 141, 148, 185,
      68,  251, 234, 100, 231, 18,  248, 101, 146, 13,  65,  71,  35,  143, 178,
      197, 109, 232, 59,  140, 174, 111, 131, 26,  130, 37,  79,  40,  56,  116,
      202, 145, 237, 108, 30,  54,  107, 207, 22,  37,  90,  6,   118, 155, 164,
      243, 4,   235, 204, 46,  134, 143, 218, 234, 54,  101, 210, 154, 78,  172,
      34,  233, 188, 41,  208, 112, 180, 10,  8,   94,  59,  106, 102, 42,  134,
      239, 25,  85,  202, 38,  222, 8,   167, 147, 162, 86,  47,  237, 67,  189,
      222, 221, 111, 212, 90,  82,  253, 224, 81,  235, 74,  23,  56,  47,  82,
      21,  134, 89,  86,  17,  79,  228, 58,  209, 169, 130, 131, 180, 240, 157,
      122, 16,  149, 111, 250, 176, 93,  106, 5,   253, 166, 69,  62,  180, 152,
      14,  37,  12,  80,  123, 32,  115, 68,  249, 237, 3,   104, 42,  80,  254,
      129, 185, 248, 49,  37,  101, 219, 220, 118, 167, 239, 218, 25,  50,  215,
      182, 8,   124, 135, 5,   194, 103, 245, 63,  97,  41,  223, 91,  204, 238,
      4,   52,  206, 81,  244, 76,  153, 98,  203, 133, 37,  92,  86,  39,  48,
      249, 238, 53,  31,  57,  188, 28,  248, 194, 244, 100, 18,  136, 104, 158,
      4,   136, 222, 60,  110, 231, 179, 82,  255, 149, 131, 141, 148, 185, 68,
      251, 234, 100, 231, 18,  248, 101, 146, 13,  65,  71,  35,  143, 178, 197,
      109, 232, 59,  140, 174, 111, 131, 26,  130, 37,  79,  40,  56,  116, 202,
      145, 237, 108, 30,  54,  107, 207, 22,  37,  90,  6,   118, 155, 164, 243,
      4,   235, 204, 46,  134, 143, 218, 234, 54,  101, 210, 154, 78,  172, 34,
      233, 188, 41,  208, 112, 180, 10,  8,   94,  59,  106, 102, 42,  134, 239,
      25,  85,  202, 38,  222, 8,   167, 147, 162, 86,  47,  237, 67,  189, 222,
      221, 111, 212, 90,  82,  253, 224, 81,  235, 74,  23,  56,  47,  82,  21,
      82,  3,   151, 152, 111, 202, 165, 255, 191, 28,  192, 197, 237, 122, 53,
      133, 77,  66,  14,  210, 99,  178, 100, 94,  220, 155, 114, 64,  96,  113,
      137, 9,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   62,  128, 35,  165, 43,  17,  130, 248, 171,
      104, 219, 244, 170, 6,   103, 158, 171, 237, 61,  147, 97,  250, 191, 169,
      230, 200, 38,  150, 141, 93,  180, 7,   62,  128, 35,  165, 43,  17,  130,
      248, 171, 104, 219, 244, 170, 6,   103, 158, 171, 237, 61,  147, 97,  250,
      191, 169, 230, 200, 38,  150, 141, 93,  180, 7,   203, 20,  245, 186, 235,
      114, 192, 197, 108, 216, 190, 119, 43,  244, 82,  15,  139, 33,  49,  137,
      189, 153, 233, 182, 139, 36,  75,  45,  40,  134, 155, 38,  141, 148, 209,
      21,  192, 97,  62,  205, 192, 111, 227, 130, 128, 237, 235, 112, 223, 51,
      243, 245, 91,  159, 41,  13,  165, 91,  36,  151, 154, 40,  231, 30,  168,
      159, 118, 58,  42,  93,  213, 217, 247, 72,  168, 108, 142, 182, 225, 236,
      138, 190, 150, 199, 145, 186, 241, 132, 109, 1,   223, 200, 185, 85,  147,
      18,  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   1,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   209, 15,  158, 121, 176, 200,
      123, 96,  152, 248, 247, 67,  167, 235, 209, 202, 245, 216, 227, 44,  29,
      10,  227, 10,  149, 12,  158, 74,  246, 91,  224, 24,  93,  210, 14,  60,
      202, 3,   66,  45,  105, 41,  153, 40,  165, 16,  120, 82,  136, 195, 88,
      2,   140, 230, 92,  184, 126, 42,  83,  156, 45,  107, 19,  28,  60,  180,
      77,  254, 226, 147, 36,  44,  133, 210, 145, 114, 86,  77,  121, 175, 108,
      176, 151, 24,  126, 2,   39,  166, 145, 50,  203, 70,  40,  156, 85,  47,
      177, 148, 164, 238, 247, 20,  201, 100, 253, 177, 48,  228, 38,  63,  131,
      84,  97,  195, 180, 233, 54,  238, 245, 183, 55,  170, 43,  87,  230, 228,
      10,  19,  119, 218, 199, 216, 69,  63,  0,   115, 212, 97,  144, 2,   46,
      247, 219, 161, 62,  89,  207, 56,  229, 120, 229, 232, 32,  60,  126, 178,
      227, 199, 21,  26,  172, 4,   255, 158, 126, 57,  106, 245, 57,  71,  148,
      212, 51,  227, 176, 160, 28,  206, 254, 76,  118, 222, 222, 46,  225, 186,
      92,  42,  157, 226, 77,  22,  14,  190, 190, 37,  195, 179, 65,  240, 70,
      243, 57,  44,  21,  112, 12,  155, 251, 107, 79,  138, 99,  57,  99,  234,
      33,  222, 85,  117, 74,  40,  97,  40,  66,  57,  209, 48,  55,  208, 181,
      82,  218, 255, 186, 73,  102, 20,  3,   119, 10,  18,  95,  34,  132, 86,
      205, 73,  135, 161, 90,  57,  210, 4,   189, 24,  244, 89,  21,  5,   158,
      241, 21,  7,   221, 158, 196, 110, 73,  160, 123, 84,  234, 36,  6,   16,
      177, 104, 51,  52,  226, 132, 19,  227, 241, 55,  53,  26,  201, 130, 53,
      53,  44,  45,  38,  23,  41,  72,  24,  212, 94,  174, 138, 220, 11,  234,
      123, 235, 147, 166, 164, 62,  109, 57,  20,  205, 59,  41,  53,  40,  27,
      15,  178, 229, 117, 52,  114, 115, 40,  160, 203, 187, 15,  90,  88,  91,
      74,  238, 37,  111, 235, 239, 90,  13,  160, 129, 134, 231, 73,  235, 21,
      24,  81,  28,  49,  78,  110, 10,  159, 175, 91,  255, 34,  172, 197, 132,
      16,  25,  133, 246, 77,  58,  193, 69,  16,  27,  238, 167, 65,  25,  47,
      10,  154, 20,  56,  149, 240, 170, 103, 66,  45,  58,  12,  114, 127, 152,
      195, 160, 247, 253, 75,  148, 54,  145, 13,  149, 37,  9,   145, 122, 193,
      5,   230, 135, 212, 20,  86,  84,  59,  198, 63,  204, 25,  89,  61,  136,
      75,  175, 218, 129, 186, 194, 67,  211, 24,  197, 191, 139, 55,  162, 125,
      73,  59,  144, 134, 172, 157, 39,  200, 66,  232, 184, 76,  95,  20,  243,
      240, 140, 233, 124, 82,  245, 253, 245, 182, 195, 60,  237, 28,  107, 214,
      132, 201, 18,  183, 17,  204, 157, 114, 14,  133, 18,  25,  80,  204, 28,
      59,  173, 0,   172, 75,  254, 192, 104, 55,  8,   236, 93,  176, 75,  245,
      140, 38,  26,  208, 183, 147, 35,  1,   215, 77,  12,  217, 5,   80,  117,
      24,  40,  235, 45,  255, 109, 155, 44,  19,  47,  222, 225, 121, 30,  227,
      43,  16,  231, 186, 24,  165, 234, 226, 8,   183, 122, 108, 15,  197, 245,
      59,  57,  87,  48,  34,  18,  26,  119, 37,  196, 20,  151, 81,  91,  245,
      247, 15,  158, 219, 15,  27,  135, 37,  247, 213, 222, 51,  187, 89,  34,
      81,  90,  189, 107, 18,  169, 241, 173, 93,  93,  36,  118, 84,  252, 46,
      146, 201, 120, 123, 61,  114, 0,   245, 90,  99,  81,  200, 26,  238, 247,
      247, 34,  31,  224, 242, 146, 211, 244, 142, 138, 51,  83,  131, 103, 168,
      201, 75,  77,  204, 60,  196, 115, 79,  123, 50,  194, 206, 184, 132, 213,
      94,  183, 48,  43,  83,  225, 6,   215, 135, 134, 124, 155, 62,  21,  236,
      105, 0,   73,  223, 90,  96,  82,  221, 148, 95,  227, 208, 229, 2,   85,
      133, 1,   190, 166, 239, 1,   140, 147, 239, 190, 216, 33,  82,  232, 1,
      32,  237, 37,  151, 133, 188, 46,  190, 253, 244, 100, 23,  18,  244, 245,
      183, 126, 117, 199, 113, 137, 235, 38,  87,  24,  137, 168, 58,  135, 102,
      76,  129, 127, 111, 235, 27,  79,  61,  172, 37,  161, 100, 222, 105, 91,
      126, 191, 90,  238, 118, 234, 236, 254, 184, 41,  30,  244, 136, 17,  166,
      114, 133, 76,  86,  254, 5,   90,  209, 194, 112, 13,  188, 65,  193, 44,
      161, 152, 50,  214, 196, 17,  49,  252, 23,  111, 20,  38,  17,  99,  206,
      181, 54,  56,  232, 165, 238, 39,  169, 107, 132, 108, 98,  53,  71,  215,
      151, 57,  131, 217, 20,  222, 193, 104, 235, 240, 145, 87,  252, 41,  232,
      39,  46,  52,  136, 254, 234, 67,  122, 131, 108, 128, 12,  41,  5,   26,
      39,  7,   89,  148, 212, 70,  1,   243, 11,  59,  191, 245, 156, 195, 245,
      1,   133, 16,  223, 205, 12,  129, 7,   109, 165, 127, 64,  247, 143, 147,
      227, 20,  155, 22,  43,  222, 213, 142, 163, 169, 181, 12,  177, 28,  6,
      241, 249, 1,   231, 191, 61,  111, 106, 255, 255, 117, 90,  107, 84,  40,
      142, 197, 61,  196, 135, 20,  50,  125, 190, 214, 64,  160, 71,  167, 240,
      66,  216, 83,  8,   18,  208, 156, 247, 164, 127, 19,  113, 138, 114, 193,
      182, 178, 124, 198, 175, 161, 217, 153, 28,  199, 238, 15,  20,  208, 20,
      203, 38,  47,  18,  103, 50,  15,  111, 48,  226, 17,  176, 218, 188, 63,
      57,  206, 84,  26,  215, 89,  175, 210, 17,  0,   13,  201, 227, 211, 35,
      172, 217, 113, 192, 110, 2,   205, 140, 27,  17,  99,  206, 181, 54,  56,
      232, 165, 238, 39,  169, 107, 132, 108, 98,  53,  71,  215, 151, 57,  131,
      217, 20,  222, 193, 104, 235, 240, 145, 87,  252, 41,  180, 248, 176, 184,
      3,   248, 6,   228, 178, 236, 68,  217, 1,   26,  61,  0,   183, 3,   85,
      232, 51,  52,  225, 21,  139, 120, 193, 117, 116, 205, 208, 10,  217, 145,
      43,  96,  236, 126, 240, 143, 134, 185, 74,  30,  182, 234, 176, 249, 81,
      237, 176, 199, 223, 20,  236, 170, 64,  230, 151, 154, 114, 147, 206, 30,
      231, 191, 61,  111, 106, 255, 255, 117, 90,  107, 84,  40,  142, 197, 61,
      196, 135, 20,  50,  125, 190, 214, 64,  160, 71,  167, 240, 66,  216, 83,
      8,   18,  82,  197, 122, 236, 219, 48,  31,  48,  86,  40,  204, 9,   103,
      163, 159, 204, 203, 254, 249, 137, 4,   201, 52,  88,  39,  144, 166, 162,
      48,  185, 0,   174, 197, 145, 182, 133, 144, 111, 159, 35,  206, 235, 179,
      93,  186, 87,  246, 123, 16,  101, 184, 10,  125, 216, 76,  74,  54,  143,
      46,  188, 19,  192, 37,  14};

  constexpr static Point kAdviceCommitments[][5] = {
      {{"0x21b657ef880458c04e6f90cb1d52d99e3c4f275f62463f91316ce6e89a7727b0",
        "0x018e7e556102c958d925644e9fdec38e1b6c88572a98ce9871485937ff5c9aa4"},
       {"0x1cdeebb09fa825fe5ee9bd16d16ddb62866f26077a8607f5be81f7f45ac3606f",
        "0x0dd225bfadd39c83ca40e0a578ae098e3dce0b62b8bbf3445e63fe035c71ce09"},
       {"0x1422edcd2b94cb798037fed6eee6061495ef3679ec4f9d89edda2e6f9ef299eb",
        "0x07aff8c1c8c754b022575c2e7e2f98483f08111f3dc0a9d7e2b119c5063c97b9"},
       {"0x26d69af68d0081752eb20fba0c186241da3677528ef11c81c234981b9feb7768",
        "0x0cb675234a966e9b7fe6f87c6da86e5b3d534330dd6ebc08302da54ccee2352f"},
       {"0x133c73d35676d200d9951b8a8cdd8719fc73de2bf26dcd8246efb8137e90c635",
        "0x1eb2849fbface2516b2dfa0d9ed2ec2b397a04ae228a2541d32bc83bb429de30"}},
      {{"0x21b657ef880458c04e6f90cb1d52d99e3c4f275f62463f91316ce6e89a7727b0",
        "0x018e7e556102c958d925644e9fdec38e1b6c88572a98ce9871485937ff5c9aa4"},
       {"0x1cdeebb09fa825fe5ee9bd16d16ddb62866f26077a8607f5be81f7f45ac3606f",
        "0x0dd225bfadd39c83ca40e0a578ae098e3dce0b62b8bbf3445e63fe035c71ce09"},
       {"0x1422edcd2b94cb798037fed6eee6061495ef3679ec4f9d89edda2e6f9ef299eb",
        "0x07aff8c1c8c754b022575c2e7e2f98483f08111f3dc0a9d7e2b119c5063c97b9"},
       {"0x26d69af68d0081752eb20fba0c186241da3677528ef11c81c234981b9feb7768",
        "0x0cb675234a966e9b7fe6f87c6da86e5b3d534330dd6ebc08302da54ccee2352f"},
       {"0x133c73d35676d200d9951b8a8cdd8719fc73de2bf26dcd8246efb8137e90c635",
        "0x1eb2849fbface2516b2dfa0d9ed2ec2b397a04ae228a2541d32bc83bb429de30"}},
  };

  constexpr static std::string_view kTheta =
      "0x1def3cccec9613b680e85b2aec2964d537bf3f8f37c252ec6259cc42c5e4edf8";

  constexpr static Point kLookupMPolyCommitments[][2] = {
      {{"0x0b4adc5443e3f631f591b9245a38c741131ddff3ac7dbf44ae7f73961116630a",
        "0x2a5f18e67444124e520e079b7ff831b8bfee476778b59ff3a7950d6210f02a29"},
       {"0x15fb2d513816075950da0ae439fccef1d7c4725d3e77b8ef2f160f473db12a9c",
        "0x13a5bf0b4bde809ec00d335afbfb4ee7d1a01b17d5f6ba51b353be98ac7034cb"}},
      {{"0x0b4adc5443e3f631f591b9245a38c741131ddff3ac7dbf44ae7f73961116630a",
        "0x2a5f18e67444124e520e079b7ff831b8bfee476778b59ff3a7950d6210f02a29"},
       {"0x15fb2d513816075950da0ae439fccef1d7c4725d3e77b8ef2f160f473db12a9c",
        "0x13a5bf0b4bde809ec00d335afbfb4ee7d1a01b17d5f6ba51b353be98ac7034cb"}}};

  constexpr static std::string_view kBeta =
      "0x196b280fb88110b45b45a5c3c2153208330174e892ba5869520981276747f8cb";

  constexpr static std::string_view kGamma =
      "0x08e3e0ffc02004246de5898763572f2cf707fd9a1a5022be65770281cc78563e";

  constexpr static Point kPermutationProductCommitments[][2] = {
      {{"0x15f481431a2c9090d3ef79f8b3198cc48d05c25ff655449e230f5b6e8741031c",
        "0x25c1831248991382d7fd7036f15c533c6de53bc5539967b3ca9d416ad4e7a581"},
       {"0x0262a880d213cffa2d105cd31b089c227a5ced69309a8d8c56a7fdd34892fb1e",
        "0x2853361cd32d728b82f8707b858c329db9030303f2f19a96f13f578a11e86288"}},
      {{"0x12d8b4e6805068a011dee541064d796b61c769f2fa2b12799ed6f9bce27daef1",
        "0x235c96b39fd1c16bfee6fb78cd4093038b0c898dadcc5a4acb5282e0d59169c3"},
       {"0x04e92d1da1abe325f5c02a23532c264d0716c1f464fb358311cc9a80292ff15f",
        "0x1413f36166810082edec8b75bb4394035e805bdd7c55081f4daf484176907039"}}};

  constexpr static Point kLookupSumCommitments[][2] = {
      {{"0x2a2710902095e5ab55b44de898c0e6840a0ee81f8d92a6c0dc8ef02a02d21ee1",
        "0x28d923782c3a6500050e9910a043fe81e0002cace28ad924adce719b65973e85"},
       {"0x1fc0212c6a0b39df601ce20a09cba553b4d1e294b60b8ce51d2f10e81b721e5e",
        "0x99ccef31dbf9a42002c79edd8820c267ec5823d59022b8497752364654b6922"}},
      {{"0x0e82ef8c5b78a9c3209e485feae54528b2b6ea32c1978083bf35ea8dd87b5b2d",
        "0x1352018b6ba7cb4a89632ef2933ad7a168591a2d7be4e88e54b66065234b4547"},
       {"0x2e68e0b070914eefd9f566420a1a062c92c3483f0095c6e302b5c7bf1a507963",
        "0xefe26c27f8fa86813c975f73bae86e79d96dacd3e12fa52f99580693b53e553"}}};

  constexpr static std::string_view kY =
      "0xad48364e7911830a76b84e3618ab3124237fb5421c5eef3bdf37eb85e21ca4c";

  constexpr static Point kVanishingHPolyCommitments[] = {
      {"0x2023e83ec43b146ef249b579fa12ba3fd0650675a908214a6e337b0a5fcc86a6",
       "0x17b1a65040f640f97bdf400e0a4203f2a4eef0f58615a3faf09f4c3d6787bd94"},
      {"0x1c567ac4264be3923bc7443b59c0fa6797c2e4f5e262d8f1077611977f074709",
       "0x27f0630e7bcec4ff340589a01b2655144883128d2db280f6fc66c83926657859"},
      {"0x1d3e540463ad34dfdb48b6f17bc3ce983d6365af2b4d8c0e69b53e943e7ecafb",
       "0x29685901b691dd27f675967c00eefa2a1c4a31d36f5cd53f2eec56519d2322ab"},
      {"0x2bf25738808b8bd2097b8e4785248ac8ed87df330b67963d8b3497bdf0dbbbb1",
       "0x07aecc4adeb01a2c58aef020848a8f5f06051b63881bb2ef2d34a2ad0bb84c9e"},
      {"0x2f4b669b0302670f1eceb1399b3c8facc8c174699836bc506a9e396f29a83d5e",
       "0x0674e7ca0781a65f8a37dfa81c1e702614a54e0a27970bfc3156c1c0525ed72a"},
      {"0x133a4f7c9995cac0e2d5a2aa247280a3555a9f800ca6c715f2c3cdb4064f339a",
       "0x1d01b1598fc253963ff5896adabef7531b1171539b85c03936c6fecb7f8dd6d0"},
      {"0x21edad2cc79515b186b057b8dbaec17f9989b48fdfbef0be23b163fff47cf14c",
       "0x0ae4a86594df157cd72c8001793034ff605224415ec8e626cdc90afc520fedf5"},
      {"0x0000000000000000000000000000000000000000000000000000000000000000",
       "0x0000000000000000000000000000000000000000000000000000000000000000"}};

  constexpr static std::string_view kX =
      "0x10853af3af648a168d28a6a3e42bf38ea86124712c9a058d2308884e024f0de";

  constexpr static std::string_view kAdviceEvals[][7] = {
      {"0x0c250e98b43e45a6fd056a5db0fa6f95107a9df0b48382a9d13ae44f11565986",
       "0x05877c08b6d73219daefa776dcdb652531f8b981fe502a6803edf94473207b50",
       "0x1cbc391f35eef93027565c2585cb62994cf451ce3404eecc5bdf29613ff567c2",
       "0x0d9265f812e764eafb44b9948d8395ff52b3e76e3cde88049e68881264f4c2f8",
       "0x065a2516cf6b361e6ced91ca7438284f25821a836fae8c3be86dc5b28f234741",
       "0x2a666a3b5e080ab470d029bce922ac4e9ad26536eada8f862ecceb04f3a49b76",
       "0x15522f38174aeb51e0fd525ad46fdddebd43ed2f56a293a708de26ca5519ef86"},
      {"0x0c250e98b43e45a6fd056a5db0fa6f95107a9df0b48382a9d13ae44f11565986",
       "0x05877c08b6d73219daefa776dcdb652531f8b981fe502a6803edf94473207b50",
       "0x1cbc391f35eef93027565c2585cb62994cf451ce3404eecc5bdf29613ff567c2",
       "0x0d9265f812e764eafb44b9948d8395ff52b3e76e3cde88049e68881264f4c2f8",
       "0x065a2516cf6b361e6ced91ca7438284f25821a836fae8c3be86dc5b28f234741",
       "0x2a666a3b5e080ab470d029bce922ac4e9ad26536eada8f862ecceb04f3a49b76",
       "0x15522f38174aeb51e0fd525ad46fdddebd43ed2f56a293a708de26ca5519ef86"}};

  constexpr static std::string_view kFixedEvals[] = {
      "0x0989716040729bdc5e64b263d20e424d85357aedc5c01cbfffa5ca6f98970352",
      "0x0000000000000000000000000000000000000000000000000000000000000000",
      "0x0000000000000000000000000000000000000000000000000000000000000000",
      "0x07b45d8d9626c8e6a9bffa61933dedab9e6706aaf4db68abf882112ba523803e",
      "0x07b45d8d9626c8e6a9bffa61933dedab9e6706aaf4db68abf882112ba523803e",
      "0x269b86282d4b248bb6e999bd8931218b0f52f42b77bed86cc5c072ebbaf514cb",
      "0x1ee7289a97245ba50d299f5bf5f333df70ebed8082e36fc0cd3e61c015d1948d",
      "0x129355b9c8df016d84f1ba91c796be8aece1b68e6ca848f7d9d55d2a3a769fa8",
      "0x0000000000000000000000000000000000000000000000000000000000000000",
      "0x0000000000000000000000000000000000000000000000000000000000000000",
      "0x0000000000000000000000000000000000000000000000000000000000000000"};

  constexpr static std::string_view kCommonPermutationEvals[] = {
      "0x18e05bf64a9e0c950ae30a1d2ce3d8f5cad1eba743f7f898607bc8b0799e0fd1",
      "0x1c136b2d9c532a7eb85ce68c0258c388527810a5289929692d4203ca3c0ed25d",
      "0x2f559c2846cb3291a627027e1897b06caf794d567291d2852c2493e2fe4db43c",
      "0x130ae4e6572baa37b7f5ee36e9b4c36154833f26e430b1fd64c914f7eea494b1",
      "0x1a15c7e3b27e3c20e8e578e538cf593ea1dbf72e029061d473003f45d8c7da77",
      "0x164de29d2a5cbae12edede764cfece1ca0b0e333d4944739f56a397e9eff04ac",
      "0x2861284a7555de21ea6339638a4f6bfb9b0c70152c39f346f041b3c325bebe0e",
      "0x18bd04d2395aa18749cd5684225f120a7703146649baffda52b5d03730d13942",
      "0x1a3537f1e31384e2343368b1100624ea547ba0496ec49edd0715f19e051559f4",
      "0x2835293bcd14396d3ea4a693eb7bea0bdc8aae5ed418482917262d2c353582c9",
      "0x1815eb49e78681a00d5aefeb6f25ee4a5b585a0fbbcba02873723475e5b20f1b",
      "0x149a0a2f1941a7ee1b1045c13a4df685191084c5ac22ff5baf9f0a6e4e311c51"};

  constexpr static std::string_view kPermutationProductEvals[][2] = {
      {"0x14d487e605c17a910925950d9136944bfdf7a0c3987f720c3a2d4267aaf09538",
       "0x0c4dd7012393b7d01a268cf54bb05dec083768c0fe4bac00ad3b1ccc50191285"},
      {"0x2259bb33ded5f725871b0fdb9e0ff7f55b519714c425771a12223057393bf5c5",
       "0x01efa6be01855502e5d0e35f94dd52605adf490069ec153e9b7c8687d706e153"}};

  constexpr static std::string_view kLookupSumEvals[][2] = {
      {"0x29b8feecea76ee5abf7e5b69de64a125ac3d4f1beb6f7f814c66873aa8891857",
       "0x01f5c39cf5bf3b0bf30146d4945907271a05290c806c837a43eafe88342e27e8"},
      {"0x0f3267122f26cb14d0140feec71c99d9a1afc67cb2b6c1728a71137fa4f79cd0",
       "0x0ad0cd7475c1788b15e13433e85503b7003d1a01d944ecb2e406f803b8b0f8b4"}};

  constexpr static std::string_view kPermutationProductNextEvals[][2] = {
      {"0x279dac86903b497da2378bbfc518d343c2ba81daaf4b883d5919cc3fc63b5456",
       "0x0f6c7ab708e2eaa518bae7102be31e79e1de2f132c9b6dff2deb2818755005d9"},
      {"0x22f7f7ee1ac851635af500723d7b78c9922efc5476245d5dadf1a9126bbd5a51",
       "0x26eb8971c7757eb7f5f4121764f4fdbe2ebc859725ed2001e85221d8beef938c"}};

  constexpr static std::string_view kLookupSumNextEvals[][2] = {
      {"0x26146f17fc3111c4d63298a12cc141bc0d70c2d15a05fe564c8572a61188f41e",
       "0x01f9f1061cb10cb5a9a38ed5de2b169b14e3938ff7407fa56d07810ccddf1085"},
      {"0x1b8ccd026ec071d9ac23d3e3c90d0011d2af59d71a54ce393fbcdab011e2306f",
       "0x1ece93729a97e640aaec14dfc7b0ed51f9b0eab61e4ab9868ff07eec602b91d9"}};

  constexpr static std::string_view kPermutationProductLastEvals[][2] = {
      {"0x0e729dcc11b712c984d66b1ced3cc3b6f5fdf5527ce98cf0f3145f4cb8e842c8",
       ""},
      {"0x2b30b75ed584b8cec2327b4f73c43ccc4d4bc9a8678353338a8ef4d392f2e01f",
       ""}};

  constexpr static std::string_view kLookupMEvals[][2] = {
      {"0x29fc5791f0eb68c1de14d9833997d74735626c846ba927eea5e83836b5ce6311",
       "0x120853d842f0a747a040d6be7d321487c43dc58e28546b5a75ffff6a6f3dbfe7"},
      {"0x29fc5791f0eb68c1de14d9833997d74735626c846ba927eea5e83836b5ce6311",
       "0x120853d842f0a747a040d6be7d321487c43dc58e28546b5a75ffff6a6f3dbfe7"}};

  constexpr static std::string_view kHEval =
      "0x0249a2c9b1d931d975ee328e18957e930215e6830e8aa23bf0c9877d3126512e";

  static void TestConfig(MultiLookupCircuitConfig<F>& config) {}

  static Circuit GetCircuit() {
    F a = *F::FromHexString(
        "0x76a69c75ed45f60e667fb401dd42f877b565f7818b1d94188fb67249");
    F instance = F(2);
    std::vector<F> lookup_table = {instance, a, a, F::Zero()};
    return Circuit(std::move(a), std::move(lookup_table));
  }

  static std::vector<Circuit> Get2Circuits() {
    Circuit circuit = GetCircuit();
    return {circuit, std::move(circuit)};
  }

  static std::vector<Evals> GetInstanceColumns() {
    F instance = F(2);
    std::vector<F> instance_column = {std::move(instance)};
    return {Evals(std::move(instance_column))};
  }
};

// PCS = GWC
template <typename Circuit, typename PS>
class MultiLookupTestData<Circuit, PS,
                          std::enable_if_t<IsGWC<typename PS::PCS>>>
    : public CircuitTestData<Circuit, PS> {
 public:
  using PCS = typename PS::PCS;
  using F = typename PCS::Field;
  using Evals = typename PCS::Evals;

  // Set flags of values to be used as true
  constexpr static bool kAdviceCommitmentsFlag = true;
  constexpr static bool kLookupMPolyCommitmentsFlag = true;
  constexpr static bool kPermutationProductCommitmentsFlag = true;
  constexpr static bool kLookupSumCommitmentsFlag = true;
  constexpr static bool kAdviceEvalsFlag = true;
  constexpr static bool kFixedEvalsFlag = true;
  constexpr static bool kCommonPermutationEvalsFlag = true;
  constexpr static bool kPermutationProductEvalsFlag = true;
  constexpr static bool kLookupSumEvalsFlag = true;
  constexpr static bool kPermutationProductNextEvalsFlag = true;
  constexpr static bool kLookupSumNextEvalsFlag = true;
  constexpr static bool kPermutationProductLastEvalsFlag = true;
  constexpr static bool kLookupMEvalsFlag = true;

  constexpr static size_t kN = 32;

  constexpr static std::string_view kPinnedConstraintSystem = "";

  constexpr static bool kSelectors[][kN] = {{}};

  constexpr static std::string_view kPinnedVerifyingKey = "";

  constexpr static std::string_view kTranscriptRepr = "";

  constexpr static uint8_t kProof[] = {
      176, 39,  119, 154, 232, 230, 108, 49,  145, 63,  70,  98,  95,  39,  79,
      60,  158, 217, 82,  29,  203, 144, 111, 78,  192, 88,  4,   136, 239, 87,
      182, 33,  111, 96,  195, 90,  244, 247, 129, 190, 245, 7,   134, 122, 7,
      38,  111, 134, 98,  219, 109, 209, 22,  189, 233, 94,  254, 37,  168, 159,
      176, 235, 222, 156, 235, 153, 242, 158, 111, 46,  218, 237, 137, 157, 79,
      236, 121, 54,  239, 149, 20,  6,   230, 238, 214, 254, 55,  128, 121, 203,
      148, 43,  205, 237, 34,  148, 104, 119, 235, 159, 27,  152, 52,  194, 129,
      28,  241, 142, 82,  119, 54,  218, 65,  98,  24,  12,  186, 15,  178, 46,
      117, 129, 0,   141, 246, 154, 214, 166, 53,  198, 144, 126, 19,  184, 239,
      70,  130, 205, 109, 242, 43,  222, 115, 252, 25,  135, 221, 140, 138, 27,
      149, 217, 0,   210, 118, 86,  211, 115, 60,  19,  176, 39,  119, 154, 232,
      230, 108, 49,  145, 63,  70,  98,  95,  39,  79,  60,  158, 217, 82,  29,
      203, 144, 111, 78,  192, 88,  4,   136, 239, 87,  182, 33,  111, 96,  195,
      90,  244, 247, 129, 190, 245, 7,   134, 122, 7,   38,  111, 134, 98,  219,
      109, 209, 22,  189, 233, 94,  254, 37,  168, 159, 176, 235, 222, 156, 235,
      153, 242, 158, 111, 46,  218, 237, 137, 157, 79,  236, 121, 54,  239, 149,
      20,  6,   230, 238, 214, 254, 55,  128, 121, 203, 148, 43,  205, 237, 34,
      148, 104, 119, 235, 159, 27,  152, 52,  194, 129, 28,  241, 142, 82,  119,
      54,  218, 65,  98,  24,  12,  186, 15,  178, 46,  117, 129, 0,   141, 246,
      154, 214, 166, 53,  198, 144, 126, 19,  184, 239, 70,  130, 205, 109, 242,
      43,  222, 115, 252, 25,  135, 221, 140, 138, 27,  149, 217, 0,   210, 118,
      86,  211, 115, 60,  19,  10,  99,  22,  17,  150, 115, 127, 174, 68,  191,
      125, 172, 243, 223, 29,  19,  65,  199, 56,  90,  36,  185, 145, 245, 49,
      246, 227, 67,  84,  220, 74,  139, 156, 42,  177, 61,  71,  15,  22,  47,
      239, 184, 119, 62,  93,  114, 196, 215, 241, 206, 252, 57,  228, 10,  218,
      80,  89,  7,   22,  56,  81,  45,  251, 149, 10,  99,  22,  17,  150, 115,
      127, 174, 68,  191, 125, 172, 243, 223, 29,  19,  65,  199, 56,  90,  36,
      185, 145, 245, 49,  246, 227, 67,  84,  220, 74,  139, 156, 42,  177, 61,
      71,  15,  22,  47,  239, 184, 119, 62,  93,  114, 196, 215, 241, 206, 252,
      57,  228, 10,  218, 80,  89,  7,   22,  56,  81,  45,  251, 149, 184, 120,
      70,  37,  33,  16,  249, 36,  249, 144, 37,  211, 202, 126, 251, 106, 190,
      92,  196, 213, 218, 8,   190, 197, 21,  51,  239, 141, 226, 121, 224, 170,
      30,  251, 146, 72,  211, 253, 167, 86,  140, 141, 154, 48,  105, 237, 92,
      122, 34,  156, 8,   27,  211, 92,  16,  45,  250, 207, 19,  210, 128, 168,
      98,  2,   241, 230, 94,  221, 44,  161, 100, 42,  43,  247, 234, 68,  22,
      100, 110, 6,   253, 233, 145, 175, 3,   74,  176, 61,  196, 71,  108, 167,
      25,  32,  151, 40,  95,  241, 47,  41,  128, 154, 204, 17,  131, 53,  251,
      100, 244, 193, 22,  7,   77,  38,  44,  83,  35,  42,  192, 245, 37,  227,
      171, 161, 29,  45,  233, 132, 21,  38,  95,  240, 206, 169, 177, 50,  33,
      237, 163, 229, 123, 22,  86,  76,  132, 242, 81,  69,  139, 253, 70,  196,
      252, 168, 24,  97,  230, 116, 95,  6,   244, 239, 145, 133, 89,  144, 137,
      210, 250, 164, 167, 148, 53,  40,  120, 250, 161, 209, 55,  210, 203, 232,
      54,  202, 179, 95,  235, 70,  181, 108, 62,  46,  124, 202, 207, 98,  189,
      142, 3,   228, 210, 106, 242, 220, 149, 211, 253, 43,  19,  133, 37,  47,
      158, 134, 17,  62,  56,  203, 90,  171, 80,  140, 187, 166, 22,  28,  227,
      82,  47,  13,  72,  242, 163, 196, 51,  86,  155, 36,  161, 70,  23,  21,
      181, 29,  209, 94,  69,  186, 202, 11,  29,  6,   216, 120, 61,  27,  1,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   192, 118, 210, 6,   138, 166, 54,  220, 36,  59,  50,  198, 93,  61,
      140, 148, 102, 158, 154, 250, 94,  48,  1,   252, 23,  11,  168, 195, 111,
      57,  94,  44,  70,  77,  156, 209, 142, 98,  118, 48,  87,  219, 37,  198,
      112, 211, 53,  129, 72,  196, 39,  84,  181, 227, 208, 139, 237, 236, 173,
      31,  55,  69,  192, 142, 84,  67,  7,   113, 140, 32,  245, 154, 203, 233,
      85,  67,  66,  90,  240, 84,  198, 155, 89,  38,  30,  48,  112, 14,  48,
      244, 107, 35,  57,  34,  132, 131, 170, 78,  227, 23,  85,  155, 181, 254,
      63,  183, 108, 157, 203, 63,  74,  164, 174, 4,   222, 1,   242, 100, 245,
      83,  251, 243, 119, 100, 79,  29,  224, 133, 83,  60,  244, 48,  92,  228,
      187, 248, 101, 96,  59,  51,  155, 218, 217, 216, 56,  224, 109, 101, 73,
      112, 25,  80,  166, 99,  195, 136, 241, 184, 204, 45,  216, 86,  138, 207,
      94,  225, 229, 124, 0,   122, 103, 20,  114, 193, 165, 9,   33,  226, 18,
      245, 67,  90,  82,  66,  184, 20,  172, 19,  1,   211, 138, 32,  212, 169,
      177, 8,   53,  185, 234, 151, 39,  69,  209, 52,  163, 105, 96,  167, 70,
      6,   39,  74,  98,  213, 38,  54,  110, 143, 45,  195, 51,  250, 239, 152,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   175, 50,  195, 195, 67,  10,  100, 250, 50,  230, 216, 123, 2,
      77,  16,  228, 200, 229, 254, 19,  44,  45,  118, 73,  8,   255, 83,  22,
      165, 129, 177, 29,  175, 50,  195, 195, 67,  10,  100, 250, 50,  230, 216,
      123, 2,   77,  16,  228, 200, 229, 254, 19,  44,  45,  118, 73,  8,   255,
      83,  22,  165, 129, 177, 29,  245, 169, 152, 46,  184, 126, 208, 14,  238,
      23,  255, 19,  234, 15,  115, 61,  243, 49,  222, 86,  129, 179, 22,  4,
      218, 220, 114, 192, 139, 138, 57,  9,   74,  32,  110, 241, 134, 129, 49,
      168, 203, 230, 10,  25,  247, 94,  218, 108, 143, 206, 88,  75,  68,  137,
      138, 152, 145, 167, 213, 97,  6,   141, 236, 32,  181, 79,  110, 54,  152,
      11,  112, 80,  128, 11,  2,   27,  182, 5,   172, 68,  229, 64,  177, 176,
      141, 140, 76,  227, 157, 173, 168, 166, 77,  39,  206, 27,  188, 21,  212,
      18,  107, 28,  149, 234, 109, 173, 198, 13,  1,   221, 105, 33,  117, 62,
      217, 49,  182, 193, 138, 232, 10,  114, 214, 126, 242, 253, 231, 0,   58,
      120, 211, 55,  38,  2,   178, 96,  140, 209, 229, 3,   199, 247, 120, 180,
      55,  216, 211, 173, 2,   223, 238, 59,  75,  135, 101, 166, 18,  4,   1,
      6,   113, 105, 122, 52,  222, 167, 11,  226, 50,  165, 143, 58,  228, 77,
      8,   2,   213, 195, 138, 241, 40,  88,  24,  11,  89,  162, 151, 130, 211,
      54,  35,  1,   118, 66,  51,  101, 249, 17,  237, 241, 239, 51,  105, 72,
      63,  199, 90,  82,  39,  170, 125, 176, 141, 208, 145, 148, 99,  178, 105,
      216, 49,  247, 132, 26,  245, 169, 152, 46,  184, 126, 208, 14,  238, 23,
      255, 19,  234, 15,  115, 61,  243, 49,  222, 86,  129, 179, 22,  4,   218,
      220, 114, 192, 139, 138, 57,  9,   74,  32,  110, 241, 134, 129, 49,  168,
      203, 230, 10,  25,  247, 94,  218, 108, 143, 206, 88,  75,  68,  137, 138,
      152, 145, 167, 213, 97,  6,   141, 236, 32,  181, 79,  110, 54,  152, 11,
      112, 80,  128, 11,  2,   27,  182, 5,   172, 68,  229, 64,  177, 176, 141,
      140, 76,  227, 157, 173, 168, 166, 77,  39,  206, 27,  188, 21,  212, 18,
      107, 28,  149, 234, 109, 173, 198, 13,  1,   221, 105, 33,  117, 62,  217,
      49,  182, 193, 138, 232, 10,  114, 214, 126, 242, 253, 231, 0,   58,  120,
      211, 55,  38,  2,   178, 96,  140, 209, 229, 3,   199, 247, 120, 180, 55,
      216, 211, 173, 2,   223, 238, 59,  75,  135, 101, 166, 18,  4,   1,   6,
      113, 105, 122, 52,  222, 167, 11,  226, 50,  165, 143, 58,  228, 77,  8,
      2,   213, 195, 138, 241, 40,  88,  24,  11,  89,  162, 151, 130, 211, 54,
      35,  1,   118, 66,  51,  101, 249, 17,  237, 241, 239, 51,  105, 72,  63,
      199, 90,  82,  39,  170, 125, 176, 141, 208, 145, 148, 99,  178, 105, 216,
      49,  247, 132, 26,  187, 15,  120, 67,  5,   199, 8,   214, 131, 147, 209,
      70,  126, 189, 75,  96,  230, 57,  141, 9,   82,  167, 130, 241, 105, 204,
      16,  163, 161, 244, 183, 35,  0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   228, 185, 127, 24,  90,
      184, 234, 112, 155, 33,  56,  249, 59,  36,  36,  157, 229, 3,   95,  174,
      103, 197, 72,  190, 127, 44,  55,  51,  102, 221, 110, 43,  228, 185, 127,
      24,  90,  184, 234, 112, 155, 33,  56,  249, 59,  36,  36,  157, 229, 3,
      95,  174, 103, 197, 72,  190, 127, 44,  55,  51,  102, 221, 110, 43,  34,
      22,  170, 41,  101, 67,  191, 164, 57,  158, 199, 55,  198, 69,  150, 79,
      228, 105, 184, 218, 229, 136, 3,   14,  87,  55,  170, 81,  120, 192, 115,
      0,   63,  92,  42,  1,   159, 128, 182, 119, 47,  237, 72,  184, 210, 9,
      166, 218, 91,  190, 218, 173, 52,  9,   11,  8,   1,   171, 164, 255, 132,
      49,  105, 5,   88,  153, 225, 217, 235, 255, 34,  31,  98,  43,  201, 122,
      165, 26,  34,  6,   19,  31,  192, 74,  113, 57,  227, 0,   153, 207, 194,
      251, 11,  232, 10,  39,  0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   1,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,
      0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   253, 114,
      185, 17,  1,   186, 43,  194, 149, 17,  165, 34,  100, 249, 72,  50,  176,
      1,   93,  17,  150, 66,  154, 238, 36,  177, 211, 182, 195, 29,  17,  19,
      105, 28,  150, 134, 33,  155, 79,  172, 101, 189, 105, 123, 96,  248, 34,
      47,  87,  254, 128, 18,  235, 16,  33,  139, 32,  173, 188, 197, 80,  45,
      78,  2,   16,  213, 245, 195, 155, 235, 67,  34,  126, 105, 70,  196, 5,
      37,  131, 192, 203, 79,  114, 200, 155, 218, 143, 207, 90,  18,  230, 151,
      237, 242, 201, 16,  10,  61,  3,   75,  231, 162, 169, 199, 23,  8,   56,
      220, 144, 183, 65,  178, 195, 91,  139, 49,  245, 127, 2,   251, 13,  134,
      134, 82,  100, 44,  211, 30,  110, 235, 155, 155, 141, 223, 231, 81,  128,
      135, 61,  134, 40,  35,  90,  98,  227, 19,  62,  239, 197, 181, 173, 0,
      41,  233, 72,  159, 156, 57,  208, 27,  69,  221, 136, 194, 170, 118, 111,
      84,  252, 245, 18,  65,  249, 230, 35,  184, 79,  118, 17,  172, 52,  208,
      171, 21,  253, 226, 53,  140, 182, 225, 43,  6,   95,  202, 190, 80,  46,
      183, 164, 12,  0,   190, 36,  243, 53,  209, 174, 214, 241, 22,  228, 93,
      26,  35,  72,  228, 164, 165, 73,  157, 41,  194, 65,  12,  84,  219, 20,
      211, 131, 247, 94,  191, 72,  45,  21,  165, 238, 201, 14,  122, 93,  188,
      151, 115, 95,  189, 208, 117, 176, 227, 37,  116, 181, 67,  108, 35,  217,
      220, 180, 152, 50,  172, 40,  24,  78,  165, 7,   127, 177, 2,   73,  174,
      116, 28,  212, 132, 154, 73,  84,  122, 242, 82,  89,  62,  238, 77,  163,
      40,  7,   73,  225, 227, 181, 80,  19,  1,   157, 134, 220, 181, 54,  117,
      235, 91,  195, 176, 18,  223, 118, 76,  224, 33,  79,  231, 185, 8,   239,
      212, 70,  2,   249, 214, 172, 121, 28,  88,  98,  182, 226, 29,  128, 142,
      69,  135, 199, 137, 68,  148, 236, 23,  50,  217, 101, 82,  150, 181, 93,
      245, 172, 194, 78,  7,   34,  20,  62,  118, 228, 23,  160, 250, 217, 97,
      17,  70,  216, 113, 133, 151, 130, 64,  88,  189, 32,  113, 237, 103, 9,
      62,  30,  166, 58,  116, 193, 16,  9,   103, 230, 37,  229, 68,  87,  237,
      167, 146, 173, 245, 217, 20,  229, 170, 147, 105, 27,  255, 154, 83,  169,
      163, 124, 119, 23,  52,  220, 49,  117, 32,  235, 247, 82,  159, 48,  45,
      18,  10,  249, 186, 135, 155, 127, 69,  196, 161, 0,   161, 77,  21,  225,
      35,  170, 252, 196, 98,  157, 85,  116, 164, 234, 6,   229, 236, 183, 64,
      238, 57,  14,  189, 166, 81,  230, 31,  104, 242, 32,  21,  120, 209, 180,
      1,   53,  253, 151, 28,  13,  204, 242, 202, 129, 9,   150, 17,  175, 202,
      20,  25,  140, 120, 240, 53,  213, 112, 156, 145, 169, 210, 59,  132, 192,
      59,  13,  176, 97,  181, 112, 165, 180, 171, 234, 213, 69,  13,  44,  23,
      149, 201, 100, 78,  155, 9,   49,  87,  199, 118, 125, 247, 61,  52,  11,
      78,  94,  28,  74,  26,  19,  221, 45,  186, 184, 243, 238, 12,  149, 107,
      225, 8,   194, 61,  99,  149, 43,  49,  141, 138, 224, 86,  8,   249, 205,
      27,  68,  152, 75,  146, 90,  67,  115, 188, 223, 198, 217, 154, 192, 127,
      98,  44,  206, 27,  66,  24,  235, 29,  131, 222, 189, 167, 63,  217, 238,
      134, 148, 254, 211, 169, 212, 103, 205, 110, 133, 200, 203, 175, 37,  27,
      246, 126, 41,  62,  221, 40,  69,  162, 240, 48,  243, 251, 188, 37,  32,
      34,  255, 125, 161, 35,  105, 110, 16,  137, 3,   85,  173, 191, 0,   180,
      123, 186, 9,   21,  181, 238, 50,  26,  99,  82,  27,  173, 200, 1,   43,
      86,  246, 228, 34,  186, 206, 184, 0,   219, 188, 113, 169, 228, 33,  45,
      62,  189, 80,  209, 185, 15,  29,  252, 202, 2,   117, 163, 191, 61,  225,
      131, 216, 156, 22,  128, 123, 119, 252, 92,  238, 153, 38,  147, 110, 207,
      113, 75,  89,  63,  213, 99,  143, 134, 228, 143, 245, 2,   169, 85,  73,
      83,  243, 73,  151, 255, 113, 0,   218, 193, 242, 177, 37,  253, 124, 35,
      137, 157, 116, 24,  159, 53,  225, 243, 226, 124, 163, 102, 96,  45,  125,
      154, 145, 4,   99,  98,  173, 90,  3,   241, 138, 210, 14,  146, 211, 5,
      223, 235, 131, 43,  176, 193, 166, 0,   67,  154, 35,  54,  218, 53,  229,
      34,  114, 228, 72,  159, 44,  239, 8,   41,  171, 137, 192, 189, 231, 79,
      68,  61,  76,  63,  150, 209, 174, 153, 113, 180, 188, 243, 231, 161, 129,
      147, 114, 43,  181, 94,  46,  116, 57,  235, 149, 130, 7,   29,  17,  112,
      211, 52,  251, 176, 7,   36,  104, 251, 56,  156, 255, 252, 86,  112, 13,
      81,  45,  102, 199, 14,  33,  249, 99,  176, 223, 251, 99,  125, 64,  153,
      159, 125, 4,   199, 172, 104, 111, 189, 100, 210, 169, 143, 185, 158, 208,
      24,  36,  49,  56,  11,  186, 45,  125, 195, 51,  168, 74,  186, 91,  170,
      84,  131, 177, 48,  11,  2,   250, 167, 64,  70,  58,  224, 146, 77,  192,
      194, 115, 131, 144, 105, 212, 67,  48,  21,  62,  134, 96,  64,  44,  163,
      3,   208, 100, 111, 160, 79,  8,   228, 244, 47,  64,  97,  153, 142, 135,
      169, 22,  243, 233, 170, 76,  138, 54,  242, 142, 24,  75,  213, 2,   153,
      77,  149, 138, 49,  231, 199, 240, 39,  32,  131, 153, 207, 220, 13,  195,
      156, 31,  219, 178, 47,  154, 189, 224, 134, 200, 147, 229, 20,  114, 228,
      72,  159, 44,  239, 8,   41,  171, 137, 192, 189, 231, 79,  68,  61,  76,
      63,  150, 209, 174, 153, 113, 180, 188, 243, 231, 161, 129, 147, 114, 43,
      163, 224, 70,  84,  60,  247, 162, 1,   248, 239, 162, 171, 86,  112, 196,
      126, 150, 85,  166, 97,  42,  11,  171, 245, 96,  227, 40,  180, 131, 132,
      5,   25,  215, 226, 58,  9,   248, 3,   126, 54,  22,  219, 34,  164, 182,
      240, 98,  137, 45,  43,  82,  226, 145, 117, 35,  40,  15,  213, 168, 246,
      110, 62,  166, 40,  125, 195, 51,  168, 74,  186, 91,  170, 84,  131, 177,
      48,  11,  2,   250, 167, 64,  70,  58,  224, 146, 77,  192, 194, 115, 131,
      144, 105, 212, 67,  48,  21,  120, 17,  76,  59,  9,   137, 247, 6,   64,
      156, 92,  198, 236, 26,  25,  202, 236, 232, 72,  224, 137, 241, 23,  82,
      7,   42,  53,  69,  17,  217, 244, 169, 243, 115, 240, 195, 43,  238, 134,
      162, 210, 56,  234, 225, 152, 240, 239, 242, 5,   194, 206, 74,  88,  61,
      226, 168, 156, 126, 183, 13,  184, 95,  133, 46,  168, 138, 238, 78,  82,
      206, 194, 186, 39,  56,  98,  139, 30,  48,  78,  216, 16,  57,  40,  106,
      22,  54,  209, 199, 14,  188, 167, 197, 190, 91,  191, 47,  247, 39,  159,
      100, 129, 82,  252, 101, 9,   139, 86,  57,  127, 35,  66,  61,  174, 154,
      74,  171, 68,  158, 100, 192, 188, 72,  134, 191, 93,  118, 164, 21};

  constexpr static Point kAdviceCommitments[][5] = {
      {{"0x21b657ef880458c04e6f90cb1d52d99e3c4f275f62463f91316ce6e89a7727b0",
        "0x018e7e556102c958d925644e9fdec38e1b6c88572a98ce9871485937ff5c9aa4"},
       {"0x1cdeebb09fa825fe5ee9bd16d16ddb62866f26077a8607f5be81f7f45ac3606f",
        "0x0dd225bfadd39c83ca40e0a578ae098e3dce0b62b8bbf3445e63fe035c71ce09"},
       {"0x1422edcd2b94cb798037fed6eee6061495ef3679ec4f9d89edda2e6f9ef299eb",
        "0x07aff8c1c8c754b022575c2e7e2f98483f08111f3dc0a9d7e2b119c5063c97b9"},
       {"0x26d69af68d0081752eb20fba0c186241da3677528ef11c81c234981b9feb7768",
        "0x0cb675234a966e9b7fe6f87c6da86e5b3d534330dd6ebc08302da54ccee2352f"},
       {"0x133c73d35676d200d9951b8a8cdd8719fc73de2bf26dcd8246efb8137e90c635",
        "0x1eb2849fbface2516b2dfa0d9ed2ec2b397a04ae228a2541d32bc83bb429de30"}},
      {{"0x21b657ef880458c04e6f90cb1d52d99e3c4f275f62463f91316ce6e89a7727b0",
        "0x018e7e556102c958d925644e9fdec38e1b6c88572a98ce9871485937ff5c9aa4"},
       {"0x1cdeebb09fa825fe5ee9bd16d16ddb62866f26077a8607f5be81f7f45ac3606f",
        "0x0dd225bfadd39c83ca40e0a578ae098e3dce0b62b8bbf3445e63fe035c71ce09"},
       {"0x1422edcd2b94cb798037fed6eee6061495ef3679ec4f9d89edda2e6f9ef299eb",
        "0x07aff8c1c8c754b022575c2e7e2f98483f08111f3dc0a9d7e2b119c5063c97b9"},
       {"0x26d69af68d0081752eb20fba0c186241da3677528ef11c81c234981b9feb7768",
        "0x0cb675234a966e9b7fe6f87c6da86e5b3d534330dd6ebc08302da54ccee2352f"},
       {"0x133c73d35676d200d9951b8a8cdd8719fc73de2bf26dcd8246efb8137e90c635",
        "0x1eb2849fbface2516b2dfa0d9ed2ec2b397a04ae228a2541d32bc83bb429de30"}}};

  constexpr static std::string_view kTheta =
      "0x1950defb9d8f3478e0462ac34605c6e7e42bd2b2b7b3fba3f26ccf52d8cdd3d9";

  constexpr static Point kLookupMPolyCommitments[][2] = {
      {{"0x0b4adc5443e3f631f591b9245a38c741131ddff3ac7dbf44ae7f73961116630a",
        "0x2a5f18e67444124e520e079b7ff831b8bfee476778b59ff3a7950d6210f02a29"},
       {"0x15fb2d513816075950da0ae439fccef1d7c4725d3e77b8ef2f160f473db12a9c",
        "0x13a5bf0b4bde809ec00d335afbfb4ee7d1a01b17d5f6ba51b353be98ac7034cb"}},
      {{"0x0b4adc5443e3f631f591b9245a38c741131ddff3ac7dbf44ae7f73961116630a",
        "0x2a5f18e67444124e520e079b7ff831b8bfee476778b59ff3a7950d6210f02a29"},
       {"0x15fb2d513816075950da0ae439fccef1d7c4725d3e77b8ef2f160f473db12a9c",
        "0x13a5bf0b4bde809ec00d335afbfb4ee7d1a01b17d5f6ba51b353be98ac7034cb"}}};

  constexpr static std::string_view kBeta =
      "0x0fe1e90dfdcdb9031329e9a5a41b4a60b6568d69e3c807e395708a8611b3edac";

  constexpr static std::string_view kGamma =
      "0x2bc7cf63734167b150d2e178590c6d5b649959123a3c05e15ca70ac5a7aee16c";

  constexpr static Point kPermutationProductCommitments[][2] = {
      {{"0x2ae079e28def3315c5be08dad5c45cbe6afb7ecad32590f924f91021254678b8",
        "0x1ad3953f92d5995642d47c91490453571bfd063923a31a60f00f05d9ec69cdeb"},
       {"0x0262a880d213cffa2d105cd31b089c227a5ced69309a8d8c56a7fdd34892fb1e",
        "0x2853361cd32d728b82f8707b858c329db9030303f2f19a96f13f578a11e86288"}},
      {{"0x28972019a76c47c43db04a03af91e9fd066e641644eaf72b2a64a12cdd5ee6f1",
        "0x0b9c648fac323f459831a93dd17af8d714b5edb313909e64102d66a215eb14da"},
       {"0x04e92d1da1abe325f5c02a23532c264d0716c1f464fb358311cc9a80292ff15f",
        "0x1413f36166810082edec8b75bb4394035e805bdd7c55081f4daf484176907039"}}};

  constexpr static Point kLookupSumCommitments[][2] = {
      {{"0x065f74e66118a8fcc446fd8b4551f2844c56167be5a3ed2132b1a9cef05f2615",
        "0x0c4e3cb2cb2e5d5a2ee6506e28e79cb93efdc032c4d4c87dc1467fe1fd57f8c0"},
       {"0x2e3e6cb546eb5fb3ca36e8cbd237d1a1fa78283594a7a4fad28990598591eff4",
        "0x127264f950c70df575562c8a6361f47d09d10809a60e6beea76d81ae2ecce654"}},
      {{"0x26bb8c50ab5acb383e11869e2f2585132bfdd395dcf26ad2e4038ebd62cfca7c",
        "0x2c24b2cf59365ad68d491891cd714b94e41953dda33ea6bbcddc78ba354636e3"},
       {"0x1b3d78d8061d0bcaba455ed11db5151746a1249b5633c4a3f2480d2f52e31c16",
        "0x2a372ee0aee1a85e2b3bd158d08d9c8108030b9a70c4e2a80cc7886e5af0c61a"}}};

  constexpr static std::string_view kY =
      "0x225b7b6db5f6eabe5bee80a329ac8cdf4f16446dce073a26540d99f46fdc772d";

  constexpr static Point kVanishingHPolyCommitments[] = {
      {"0x2c5e396fc3a80b17fc01305efa9a9e66948c3d5dc6323b24dc36a68a06d276c0",
       "0x21d86696cd63c9ce4583007d3d099ad4f8c76e9b016e4a1c8f4dcbd81a4b9820"},
      {"0x0ec045371fadeced8bd0e3b55427c4488135d370c625db573076628ed19c4d46",
       "0x22f3ed9908e0f46219180a49eb3ad385ded3ae26d1f517437830f20749f2448b"},
      {"0x03842239236bf4300e70301e26599bc654f05a424355e9cb9af5208c71074354",
       "0x053354e22714f3ac058e47a185ce917ba20e6f2077e9dfc513e0411d2250e9f3"},
      {"0x05e01d4f6477f3fb53f564f201de04aea44a3fcb9d6cb73ffeb59b5517e34eaa",
       "0x03a794602546ec5b1654404a245da5cb2a0776ebe7d34fc5dfa320919f4de2b9"},
      {"0x2dccb8f188c363a650197049656de038d8d9da9b333b6065f8bbe45c30f43c53",
       "0x2549fa80612c8af3876edf8bbb06d2a22f2285c5b532b471b03e466b423e5bde"},
      {"0x208ad30113ac14b842525a43f512e22109a5c17214677a007ce5e15ecf8a56d8",
       "0x0c21b0a05ca8dde9cc4ad91d28c9e9b36b0e2161cea0bbcc3a78c892c1baecbe"},
      {"0x18effa33c32d8f6e3626d5624a270646a76069a334d1452797eab93508b1a9d4",
       "0x101d11a503164346f6b1726a1cf38ca76d98ce40eaaac1aaaf5de2c4b133e8d3"},
      {"0x0000000000000000000000000000000000000000000000000000000000000000",
       "0x0000000000000000000000000000000000000000000000000000000000000000"}};

  constexpr static std::string_view kX =
      "0x2d67391a5688800ccce662394b35c9dfcb61fc24cc696042861d9aec64693e02";

  constexpr static std::string_view kAdviceEvals[][7] = {
      {"0x09398a8bc072dcda0416b38156de31f33d730fea13ff17ee0ed07eb82e98a9f5",
       "0x20ec8d0661d5a791988a89444b58ce8f6cda5ef7190ae6cba8318186f16e204a",
       "0x1bce274da6a8ad9de34c8c8db0b140e544ac05b61b020b8050700b98366e4fb5",
       "0x00e7fdf27ed6720ae88ac1b631d93e752169dd010dc6ad6dea951c6b12d415bc",
       "0x06010412a665874b3beedf02add3d837b478f7c703e5d18c60b2022637d3783a",
       "0x012336d38297a2590b185828f18ac3d502084de43a8fa532e20ba7de347a6971",
       "0x1a84f731d869b2639491d08db07daa27525ac73f486933eff1ed11f965334276"},
      {"0x09398a8bc072dcda0416b38156de31f33d730fea13ff17ee0ed07eb82e98a9f5",
       "0x20ec8d0661d5a791988a89444b58ce8f6cda5ef7190ae6cba8318186f16e204a",
       "0x1bce274da6a8ad9de34c8c8db0b140e544ac05b61b020b8050700b98366e4fb5",
       "0x00e7fdf27ed6720ae88ac1b631d93e752169dd010dc6ad6dea951c6b12d415bc",
       "0x06010412a665874b3beedf02add3d837b478f7c703e5d18c60b2022637d3783a",
       "0x012336d38297a2590b185828f18ac3d502084de43a8fa532e20ba7de347a6971",
       "0x1a84f731d869b2639491d08db07daa27525ac73f486933eff1ed11f965334276"}};

  constexpr static std::string_view kFixedEvals[] = {
      "0x23b7f4a1a310cc69f182a752098d39e6604bbd7e46d19383d608c70543780fbb",
      "0x0000000000000000000000000000000000000000000000000000000000000000",
      "0x0000000000000000000000000000000000000000000000000000000000000000",
      "0x2b6edd6633372c7fbe48c567ae5f03e59d24243bf938219b70eab85a187fb9e4",
      "0x2b6edd6633372c7fbe48c567ae5f03e59d24243bf938219b70eab85a187fb9e4",
      "0x0073c07851aa37570e0388e5dab869e44f9645c637c79e39a4bf436529aa1622",
      "0x05693184ffa4ab01080b0934addabe5bdaa609d2b848ed2f77b6809f012a5c3f",
      "0x270ae80bfbc2cf9900e339714ac01f1306221aa57ac92b621f22ffebd9e19958",
      "0x0000000000000000000000000000000000000000000000000000000000000000",
      "0x0000000000000000000000000000000000000000000000000000000000000000",
      "0x0000000000000000000000000000000000000000000000000000000000000000"};

  constexpr static std::string_view kCommonPermutationEvals[] = {
      "0x13111dc3b6d3b124ee9a4296115d01b03248f96422a51195c22bba0111b972fd",
      "0x024e2d50c5bcad208b2110eb1280fe572f22f8607b69bd65ac4f9b2186961c69",
      "0x10c9f2ed97e6125acf8fda9bc8724fcbc0832505c446697e2243eb9bc3f5d510",
      "0x1ed32c645286860dfb027ff5318b5bc3b241b790dc380817c7a9a2e74b033d0a",
      "0x1bd0399c9f48e92900adb5c5ef3e13e3625a2328863d878051e7df8d9b9beb6e",
      "0x062be1b68c35e2fd15abd034ac11764fb823e6f94112f5fc546f76aac288dd45",
      "0x0c41c2299d49a5a4e448231a5de416f1d6aed135f324be000ca4b72e50beca5f",
      "0x236c43b57425e3b075d0bd5f7397bc5d7a0ec9eea5152d48bf5ef783d314db54",
      "0x28a34dee3e5952f27a54499a84d41c74ae4902b17f07a54e1828ac3298b4dcd9",
      "0x0246d4ef08b9e74f21e04c76df12b0c35beb7536b5dc869d011350b5e3e14907",
      "0x074ec2acf55db5965265d93217ec944489c787458e801de2b662581c79acd6f9",
      "0x10c1743aa61e3e0967ed7120bd584082978571d8461161d9faa017e4763e1422"};

  constexpr static std::string_view kPermutationProductEvals[][2] = {
      {"0x207531dc3417777ca3a9539aff1b6993aae514d9f5ad92a7ed5744e525e66709",
       "0x172c0d45d5eaabb4a570b561b00d3bc0843bd2a9919c70d535f0788c1914caaf"},
      {"0x1bce2c627fc09ad9c6dfbc73435a924b98441bcdf90856e08a8d312b95633dc2",
       "0x02cafc1d0fb9d150bd3e2d21e4a971bcdb00b8ceba22e4f6562b01c8ad1b5263"}};

  constexpr static std::string_view kLookupSumEvals[][2] = {
      {"0x2d6066a37ce2f3e1359f18749d89237cfd25b1f2c1da0071ff9749f3534955a9",
       "0x0ec7662d510d7056fcff9c38fb682407b0fb34d370111d078295eb39742e5eb5"},
      {"0x188ef2368a4caae9f316a9878e9961402ff4e4084fa06f64d003a32c4060863e",
       "0x19058483b428e360f5ab0b2a61a655967ec47056aba2eff801a2f73c5446e0a3"}};

  constexpr static std::string_view kPermutationProductNextEvals[][2] = {
      {"0x06eaa474559d62c4fcaa23e1154da100a1c4457f9b87baf90a122d309f52f7eb",
       "0x08e16b950ceef3b8ba2ddd131a4a1c5e4e0b343df77d76c75731099b4e64c995"},
      {"0x28dd3e297ef61b25afcbc8856ecd67d4a9d3fe9486eed93fa7bdde831deb1842",
       "0x02f58fe4868f63d53f594b71cf6e932699ee5cfc777b80169cd883e13dbfa375"}};

  constexpr static std::string_view kLookupSumNextEvals[][2] = {
      {"0x22e535da36239a4300a6c1b02b83ebdf05d3920ed28af1035aad626304919a7d",
       "0x2dba0b38312418d09eb98fa9d264bd6f68acc7047d9f99407d63fbdfb063f921"},
      {"0x14e593c886e0bd9a2fb2db1f9cc30ddccf99832027f0c7e7318a954d9902d54b",
       "0x28a63e6ef6a8d50f28237591e2522b2d8962f0b6a422db16367e03f8093ae2d7"}};

  constexpr static std::string_view kPermutationProductLastEvals[][2] = {
      {"0x11960981caf2cc0d1c97fd3501b4d1781520f2681fe651a6bd0e39ee40b7ece5",
       ""},
      {"0x1a32eeb51509ba7bb400bfad550389106e6923a17dff222025bcfbf330f0a245",
       ""}};

  constexpr static std::string_view kLookupMEvals[][2] = {
      {"0x2b729381a1e7f3bcb47199aed1963f4c3d444fe7bdc089ab2908ef2c9f48e472",
       "0x153043d469908373c2c04d92e03a4640a7fa020b30b18354aa5bba4aa833c37d"},
      {"0x2b729381a1e7f3bcb47199aed1963f4c3d444fe7bdc089ab2908ef2c9f48e472",
       "0x153043d469908373c2c04d92e03a4640a7fa020b30b18354aa5bba4aa833c37d"}};

  constexpr static std::string_view kHEval =
      "0x15a876a131dd34deb9bfc5ef39cff3910a13a510aa465e447a865154406f2796";

  static void TestConfig(MultiLookupCircuitConfig<F>& config) {}

  static Circuit GetCircuit() {
    F a = *F::FromHexString(
        "0x76a69c75ed45f60e667fb401dd42f877b565f7818b1d94188fb67249");
    F instance = F(2);
    std::vector<F> lookup_table = {instance, a, a, F::Zero()};
    return Circuit(std::move(a), std::move(lookup_table));
  }

  static std::vector<Circuit> Get2Circuits() {
    Circuit circuit = GetCircuit();
    return {circuit, std::move(circuit)};
  }

  static std::vector<Evals> GetInstanceColumns() {
    F instance = F(2);
    std::vector<F> instance_column = {std::move(instance)};
    return {Evals(std::move(instance_column))};
  }
};

}  // namespace tachyon::zk::plonk

#endif  // TACHYON_ZK_PLONK_EXAMPLES_MULTI_LOOKUP_CIRCUIT_TEST_DATA_H_
